import Vue from 'vue';


/**
 * @file 字典
 * @author zxq
 */
const map = {
    // 报账状态
    accountStatusList: [
        // 信息上传
        {
            label: '待上传资料',
            value: 1
        },
        {
            label: '票据处理中',
            value: 101
        },
        {
            label: '待客户上传',
            value: 2
        },
        // 信息核对
        {
            label: '待核对',
            value: 3
        },
        {
            label: '核对中',
            value: 4
        },
        {
            label: '票据异常',
            value: 5
        },
        {
            label: '尚未抄报税',
            value: 6
        },
        // 智能做账
        {
            label: '做账中',
            value: 7
        },
        {
            label: '待客户完善',
            value: 8
        },
        {
            label: '待确认',
            value: 9
        },
        {
            label: '财务完成',
            value: 10
        }
        // 财务状态一直是 100%
        // 财务完成 单独 10
    ],

    // 行业列表
    industryList: [
        '批发业',
        '零售业',
        '道路运输业',
        '装卸搬运和仓储业',
        '住宿业',
        '软件和信息技术服务业',
        '餐饮业',
        '互联网和相关服务',
        '租赁业',
        '技术推广服务'
    ],
    // 公司类型
    payTaxesTypeList: [
        '一般纳税人',
        '小规模纳税人'
    ],
    // 通用布尔类型选择框数据
    boolList: [{
            label: '是',
            value: 1,
        },
        {
            label: '否',
            value: 0,
        }
    ],
    // 借方科目与贷方科目 (共用一套)
    subjectsList: [{
        "code": "1001",
        "text": "库存现金"
    }, {
        "code": "1002",
        "text": "银行存款"
    }, {
        "code": "1004",
        "text": "备用金"
    }, {
        "code": "1012",
        "text": "其他货币资金"
    }, {
        "code": "101201",
        "text": "银行汇票"
    }, {
        "code": "101202",
        "text": "银行本票"
    }, {
        "code": "101203",
        "text": "信用卡"
    }, {
        "code": "101204",
        "text": "信用证保证金"
    }, {
        "code": "101205",
        "text": "外埠存款"
    }, {
        "code": "1101",
        "text": "短期投资"
    }, {
        "code": "110101",
        "text": "股票"
    }, {
        "code": "110102",
        "text": "债券"
    }, {
        "code": "110103",
        "text": "基金"
    }, {
        "code": "1121",
        "text": "应收票据"
    }, {
        "code": "1122",
        "text": "应收账款"
    }, {
        "code": "1123",
        "text": "预付账款"
    }, {
        "code": "1131",
        "text": "应收股利"
    }, {
        "code": "1132",
        "text": "应收利息"
    }, {
        "code": "1221",
        "text": "其他应收款"
    }, {
        "code": "122101",
        "text": "其他应收款-员工借款"
    }, {
        "code": "122102",
        "text": "其他应收款-其他往来账"
    }, {
        "code": "1403",
        "text": "原材料"
    }, {
        "code": "1405",
        "text": "库存商品"
    }, {
        "code": "1411",
        "text": "周转材料"
    }, {
        "code": "1414",
        "text": "在制品"
    }, {
        "code": "1501",
        "text": "长期债券投资"
    }, {
        "code": "150101",
        "text": "长期债券投资-面值"
    }, {
        "code": "150102",
        "text": "长期债券投资-溢折价"
    }, {
        "code": "150103",
        "text": "长期债券投资-应计利息"
    }, {
        "code": "1511",
        "text": "长期股权投资"
    }, {
        "code": "1601",
        "text": "固定资产"
    }, {
        "code": "1602",
        "text": "累计折旧"
    }, {
        "code": "1604",
        "text": "在建工程"
    }, {
        "code": "1605",
        "text": "工程物资"
    }, {
        "code": "160501",
        "text": "工程物资-专用材料"
    }, {
        "code": "160502",
        "text": "工程物资-专用设备"
    }, {
        "code": "160503",
        "text": "工程物资-工器具"
    }, {
        "code": "1606",
        "text": "固定资产清理"
    }, {
        "code": "1621",
        "text": "生产性生物资产"
    }, {
        "code": "162101",
        "text": "生产性生物资产-未成熟生产性生物资产"
    }, {
        "code": "162102",
        "text": "生产性生物资产-成熟生产性生物资产"
    }, {
        "code": "1622",
        "text": "生产性生物资产累计折旧"
    }, {
        "code": "1701",
        "text": "无形资产"
    }, {
        "code": "1702",
        "text": "累计摊销"
    }, {
        "code": "1801",
        "text": "长期待摊费用"
    }, {
        "code": "1901",
        "text": "待处理财产损溢"
    }, {
        "code": "190101",
        "text": "待处理财产损溢-待处理流动资产损溢"
    }, {
        "code": "190102",
        "text": "待处理财产损溢-待处理非流动资产损溢"
    }, {
        "code": "2001",
        "text": "短期借款"
    }, {
        "code": "2201",
        "text": "应付票据"
    }, {
        "code": "2202",
        "text": "应付账款"
    }, {
        "code": "2203",
        "text": "预收账款"
    }, {
        "code": "2211",
        "text": "应付职工薪酬"
    }, {
        "code": "221101",
        "text": "应付职工薪酬-职工工资"
    }, {
        "code": "221104",
        "text": "应付职工薪酬-五险一金"
    }, {
        "code": "2221",
        "text": "应交税费"
    }, {
        "code": "222101",
        "text": "应交税费-增值税"
    }, {
        "code": "22210101",
        "text": "应交税费-增值税-进项税额"
    }, {
        "code": "22210102",
        "text": "应交税费-增值税-销项税额"
    }, {
        "code": "22210103",
        "text": "应交税费-增值税-出口抵减内销产品应纳税额"
    }, {
        "code": "22210104",
        "text": "应交税费-增值税-进项税额转出"
    }, {
        "code": "22210105",
        "text": "应交税费-增值税-出口退税"
    }, {
        "code": "22210106",
        "text": "应交税费-增值税-已交税金"
    }, {
        "code": "22210107",
        "text": "应交税费-增值税-减免税金额"
    }, {
        "code": "222102",
        "text": "应交税费-消费税"
    }, {
        "code": "222103",
        "text": "应交税费-营业税"
    }, {
        "code": "222104",
        "text": "应交税费-城市维护建设税"
    }, {
        "code": "222105",
        "text": "应交税费-企业所得税"
    }, {
        "code": "222106",
        "text": "应交税费-资源税"
    }, {
        "code": "222107",
        "text": "应交税费-土地增值税"
    }, {
        "code": "222108",
        "text": "应交税费-城镇土地使用税"
    }, {
        "code": "222109",
        "text": "应交税费-房产税"
    }, {
        "code": "222110",
        "text": "应交税费-车船税"
    }, {
        "code": "222111",
        "text": "应交税费-教育费附加"
    }, {
        "code": "222112",
        "text": "应交税费-矿产资源补偿费"
    }, {
        "code": "222113",
        "text": "应交税费-排污费"
    }, {
        "code": "222114",
        "text": "应交税费-个人所得税"
    }, {
        "code": "22211401",
        "text": "应交税费-个人所得税-代扣代缴工资薪金"
    }, {
        "code": "22211402",
        "text": "应交税费-个人所得税-代扣代缴非工资薪金"
    }, {
        "code": "22211403",
        "text": "应交税费-个人所得税-个人经营所得税"
    }, {
        "code": "222115",
        "text": "应交税费-印花税"
    }, {
        "code": "2231",
        "text": "应付利息"
    }, {
        "code": "2232",
        "text": "应付利润"
    }, {
        "code": "2241",
        "text": "其他应付款"
    }, {
        "code": "224101",
        "text": "其他应付款-员工借款"
    }, {
        "code": "224102",
        "text": "其他应付款-其他往来账"
    }, {
        "code": "2401",
        "text": "递延收益"
    }, {
        "code": "2501",
        "text": "长期借款"
    }, {
        "code": "2701",
        "text": "长期应付款"
    }, {
        "code": "3001",
        "text": "实收资本"
    }, {
        "code": "3002",
        "text": "资本公积"
    }, {
        "code": "3101",
        "text": "盈余公积"
    }, {
        "code": "310101",
        "text": "盈余公积-法定盈余公积"
    }, {
        "code": "310102",
        "text": "盈余公积-任意盈余公积"
    }, {
        "code": "310103",
        "text": "盈余公积-职工奖励及福利基金"
    }, {
        "code": "310104",
        "text": "盈余公积-储备基金"
    }, {
        "code": "310105",
        "text": "盈余公积-企业发展基金"
    }, {
        "code": "310106",
        "text": "盈余公积-利润归还投资"
    }, {
        "code": "3104",
        "text": "利润分配"
    }, {
        "code": "310401",
        "text": "利润分配-应付利润"
    }, {
        "code": "310402",
        "text": "利润分配-未分配利润"
    }, {
        "code": "310403",
        "text": "利润分配-提取法定盈余公积"
    }, {
        "code": "4001",
        "text": "生产成本"
    }, {
        "code": "400101",
        "text": "生产成本-原材料"
    }, {
        "code": "400102",
        "text": "生产成本-原材料暂估"
    }, {
        "code": "400103",
        "text": "生产成本-制造费用"
    }, {
        "code": "40010301",
        "text": "生产成本-制造费用-职工薪酬"
    }, {
        "code": "40010302",
        "text": "生产成本-制造费用-劳务费"
    }, {
        "code": "40010303",
        "text": "生产成本-制造费用-折旧费"
    }, {
        "code": "40010304",
        "text": "生产成本-制造费用-能源及动力"
    }, {
        "code": "40010305",
        "text": "生产成本-制造费用-其他制造费用"
    }, {
        "code": "40010306",
        "text": "生产成本-制造费用-暂估"
    }, {
        "code": "4301",
        "text": "研发支出"
    }, {
        "code": "430101",
        "text": "研发支出-费用化支出"
    }, {
        "code": "430102",
        "text": "研发支出-资本化支出"
    }, {
        "code": "5001",
        "text": "主营业务收入"
    }, {
        "code": "5051",
        "text": "其他业务收入"
    }, {
        "code": "505101",
        "text": "其他业务收入-销售材料"
    }, {
        "code": "505102",
        "text": "其他业务收入-出租固定资产"
    }, {
        "code": "505103",
        "text": "其他业务收入-出租无形资产"
    }, {
        "code": "5111",
        "text": "投资收益"
    }, {
        "code": "5301",
        "text": "营业外收入"
    }, {
        "code": "530101",
        "text": "营业外收入-非流动资产处置净收益"
    }, {
        "code": "530102",
        "text": "营业外收入-政府补助"
    }, {
        "code": "530103",
        "text": "营业外收入-捐赠收益"
    }, {
        "code": "530104",
        "text": "营业外收入-盘盈收益"
    }, {
        "code": "530105",
        "text": "营业外收入-汇兑收益"
    }, {
        "code": "530106",
        "text": "营业外收入-出租包装物和商品的租金收入"
    }, {
        "code": "530107",
        "text": "营业外收入-逾期未退包装物押金收益"
    }, {
        "code": "530108",
        "text": "营业外收入-确实无法偿付的应付款项"
    }, {
        "code": "530109",
        "text": "营业外收入-已作坏账损失处理后又收回的应收款项"
    }, {
        "code": "530110",
        "text": "营业外收入-违约金收益"
    }, {
        "code": "5401",
        "text": "主营业务成本"
    }, {
        "code": "5402",
        "text": "其他业务成本"
    }, {
        "code": "540201",
        "text": "其他业务成本-销售材料的成本"
    }, {
        "code": "540202",
        "text": "其他业务成本-出租固定资产的折旧费"
    }, {
        "code": "540203",
        "text": "其他业务成本-出租无形资产的摊销额"
    }, {
        "code": "5403",
        "text": "营业税金及附加"
    }, {
        "code": "540301",
        "text": "营业税金及附加-消费税"
    }, {
        "code": "540302",
        "text": "营业税金及附加-营业税"
    }, {
        "code": "540303",
        "text": "营业税金及附加-城市维护建设税"
    }, {
        "code": "540304",
        "text": "营业税金及附加-资源税"
    }, {
        "code": "540305",
        "text": "营业税金及附加-土地增值税"
    }, {
        "code": "540306",
        "text": "营业税金及附加-城镇土地使用税"
    }, {
        "code": "540307",
        "text": "营业税金及附加-房产税"
    }, {
        "code": "540308",
        "text": "营业税金及附加-车船税"
    }, {
        "code": "540309",
        "text": "营业税金及附加-印花税"
    }, {
        "code": "540310",
        "text": "营业税金及附加-教育费附加"
    }, {
        "code": "540311",
        "text": "营业税金及附加-矿产资源补偿费"
    }, {
        "code": "540312",
        "text": "营业税金及附加-排污费"
    }, {
        "code": "5601",
        "text": "销售费用"
    }, {
        "code": "560101",
        "text": "销售费用-职工薪酬"
    }, {
        "code": "560107",
        "text": "销售费用-广告费和业务宣传费"
    }, {
        "code": "560109",
        "text": "销售费用-销售代理费"
    }, {
        "code": "560110",
        "text": "销售费用-暂估"
    }, {
        "code": "5602",
        "text": "管理费用"
    }, {
        "code": "560204",
        "text": "管理费用-办公费"
    }, {
        "code": "560206",
        "text": "管理费用-差旅费"
    }, {
        "code": "560207",
        "text": "管理费用-职工薪酬"
    }, {
        "code": "560208",
        "text": "管理费用-业务招待费"
    }, {
        "code": "560216",
        "text": "管理费用-福利费"
    }, {
        "code": "560217",
        "text": "管理费用-暂估"
    }, {
        "code": "5603",
        "text": "财务费用"
    }, {
        "code": "560301",
        "text": "财务费用-利息费用"
    }, {
        "code": "560302",
        "text": "财务费用-汇兑损失"
    }, {
        "code": "560303",
        "text": "财务费用-手续费"
    }, {
        "code": "5711",
        "text": "营业外支出"
    }, {
        "code": "571101",
        "text": "营业外支出-存货的盘亏、毁损、报废损失"
    }, {
        "code": "571102",
        "text": "营业外支出-非流动资产处置净损失"
    }, {
        "code": "571103",
        "text": "营业外支出-坏账损失"
    }, {
        "code": "571104",
        "text": "营业外支出-无法收回的长期债券投资损失"
    }, {
        "code": "571105",
        "text": "营业外支出-无法收回的长期股权投资损失"
    }, {
        "code": "571106",
        "text": "营业外支出-自然灾害等不可抗力因素造成的损失"
    }, {
        "code": "571107",
        "text": "营业外支出-税收滞纳金、罚金、罚款"
    }, {
        "code": "571108",
        "text": "营业外支出-被没收财物的损失"
    }, {
        "code": "571109",
        "text": "营业外支出-捐赠支出"
    }, {
        "code": "571110",
        "text": "营业外支出-赞助支出"
    }, {
        "code": "5801",
        "text": "所得税费用"
    }],
    // 优惠政策
    discountPolicy: [
        '小微企业-安静的就哈的广泛骄傲黑色的广泛骄傲果刀房间爱萨嘎达房间ASDG',
        '高新企业'
    ],
    // 银行列表
    bankList: [{
            value: 0,
            name: '中国银行'
        },
        {
            value: 1,
            name: '中国建设银行',
        },
        {
            value: 2,
            name: '中国农业银行',
        },
        {
            value: 3,
            name: '招商银行',
        },
        {
            value: 4,
            name: '兴业银行'
        },
        {
            value: 5,
            name: '中国工商银行'
        },
        {
            value: 6,
            name: '光大银行'
        },
        {
            value: 7,
            name: '平安银行'
        }
    ]
};
export default map;

// 智能做账 状态
export const smartBillStatusList = map.accountStatusList;

// 报税状态
export const oneKeyBillStatusList = [{
        label: '待申报',
        value: 20
    },
    {
        label: '申报中',
        value: 21
    },
    {
        label: '申报失败',
        value: 22
    },
    {
        label: '申报成功(待客户确认)',
        value: 23
    },
    {
        label: '客户确认(待缴纳)',
        value: 24
    },
    {
        label: '人工处理',
        value: 25
    },
    {
        label: '无三方协议',
        value: 26
    },
    {
        label: '缴纳中',
        value: 27
    },
    {
        label: '缴纳成功',
        value: 28
    },
    {
        label: '缴纳失败',
        value: 29
    },
];

export const urbanTaxRateList = [{
        label: '7%',
        value: 7
    },
    {
        label: '5%',
        value: 5
    },
    {
        label: '1%',
        value: 1
    },
];

export const regionList = [{
    label: '四川',
    value: '四川'
},
{
    label: '重庆',
    value: '重庆'
}
]

export const oneKeyBillStatusObj = (() => {
    const obj = {};
    oneKeyBillStatusList.forEach(v => obj[v.value] = v.label)
    return obj;
})();

export const smartBillStatusObj = (() => {
    const obj = {};
    map.accountStatusList.forEach(v => obj[v.value] = v.label)
    return obj;
})();


let _getPromise = null;

export function getSubjectList() {
    if (!_getPromise) {
        _getPromise = Vue.prototype.$http.get('/subject/list');
    }
    return _getPromise.then((res) => {
        if (res.code === 0) {
            return res.data.subjectList.map( v => ({
                code: v.subjectCode,
                label: v.subjectName
            }))
        } else {
            throw res;
        }
    })
}

export const FileType = [
        // 发票
    {name:"RECEIPT", value:0},
    // 混贴发票
    {name:"MIX_RECEIPT",value:1},
    // 回单
    {name:"BILL",value:2,},
    // 银行流水表
    {name:"BANK_WATER_SHEET", value:3},
    // 员工表
    {name:"STAFF", value:4},
    // 工资表
    {name:"SALARY", value:5},
    // 期初科目余额表
    {name:"PERIOD_FIRST_SUBJECT_BALANCE_SHEET", value:6},
    // 期初现金流量表
    {name:"PERIOD_FIRST_CASH_SHEET", value:7},
    // 年初资产负债表
    {name:"YEAR_FIRST_BALANCE_SHEET", value:8}
]

export function getFileType(typeName){
    var index = FileType.findIndex(ele => ele.name == typeName);
    if (index != -1){
        return FileType[index].value;
    } else {
        throw "上传文件类型 "+typeName + "不存在"
    }
}